In the field of managing software on virtual machines, the large number of variables in a virtual machine guest operating system can make it difficult for a person to distinguish between software settings that are relevant or significant with respect to some arbitrary purpose. For example, a person experimenting with the configuration settings of a guest operating system (of a virtual machine) and or application software installed thereon may, over time, make many configuration changes, for example directly by manual editing, as side effects to tasks such as installing or uninstalling software, and so forth. As these configuration or setting changes accumulate, it can be difficult to retrace one's steps and identify what may have caused a virtual machine to begin operating in a desirable or undesirable state.
Not only can it be difficult to identify, among the many changing state parameters of a virtual machine, those that have meaning or significance, it can also be difficult to distinguish between different types or categories of changeable values on a virtual machine. Some may be true configuration parameters that a guest operating system or application software may read to determine how to function. Others may contain operational data that is outputted by the guest operating system, such as performance metrics, timestamps, usage counts, and so forth. Even among these, it may be difficult to determine, for purposes of evaluating a virtual machine, operational data that is correlated with the virtual machine's desirable or undesirable current state, and operational data that is effectively independent of the virtual machine's state.
Techniques related to using peer-pressure type algorithms to analyze virtual machine images are discussed below.